83 research outputs found
Towards Interactive, Incremental Programming of ROS Nodes
Writing software for controlling robots is a complex task, usually demanding
command of many programming languages and requiring significant
experimentation. We believe that a bottom-up development process that
complements traditional component- and MDSD-based approaches can facilitate
experimentation. We propose the use of an internal DSL providing both a tool to
interactively create ROS nodes and a behaviour-replacement mechanism to
interactively reshape existing ROS nodes by wrapping the external interfaces
(the publish/subscribe topics), dynamically controlled using the Python command
line interface.Comment: Presented at DSLRob 2014 (arXiv:cs/1411.7148
Towards Unifying Inheritance and Automatic Program Specialization
Inheritance allows a class to be specialized and its attributes refined, but implementation specialization can only take place by overriding with manually implemented methods. Automatic program specialization can generate a specialized, efficient implementation. However, specialization of programs and specialization of classes (inheritance) are considered different abstractions. We present a new programming language, Lapis, that unifies inheritance and program specialization at the conceptual, syntactic, and semantic levels. This paper presents the initial development of Lapis, which uses inheritance with covariant specialization to control the automatic application of program specialization to class members. Lapis integrates object-oriented concepts, block structure, and techniques from automatic program specialization to provide both a language where object-oriented designs can be efficiently implemented and a simple yet powerful partial evaluator for an object-oriented language
Towards Declarative Safety Rules for Perception Specification Architectures
Agriculture has a high number of fatalities compared to other blue collar
fields, additionally population decreasing in rural areas is resulting in
decreased work force. These issues have resulted in increased focus on
improving efficiency of and introducing autonomy in agriculture. Field robots
are an increasingly promising branch of robotics targeted at full automation in
agriculture. The safety aspect however is rely addressed in connection with
safety standards, which limits the real-world applicability. In this paper we
present an analysis of a vision pipeline in connection with functional-safety
standards, in order to propose solutions for how to ascertain that the system
operates as required. Based on the analysis we demonstrate a simple mechanism
for verifying that a vision pipeline is functioning correctly, thus improving
the safety in the overall system.Comment: Presented at DSLRob 2015 (arXiv:1601.00877
Declarative Specialization for Object-Oriented-Program Specialization
The use of partial evaluation for specializing programs written in im- perative languages such as C and Java is hampered by the di-culty of controlling the specialization process. We have developed a simple, declar- ative language for controlling the specialization of Java programs, and in- terfaced this language with the JSpec partial evaluator for Java. This lan- guage, named Pesto, allows declarative specialization of programs written in an object-oriented style of programming. The Pesto compiler auto- matically generates the context information needed for specializing Java programs, and automatically generates guards that enable the specialized code in the right context
Towards Python-based Domain-specific Languages for Self-reconfigurable Modular Robotics Research
This paper explores the role of operating system and high-level languages in
the development of software and domain-specific languages (DSLs) for
self-reconfigurable robotics. We review some of the current trends in
self-reconfigurable robotics and describe the development of a software system
for ATRON II which utilizes Linux and Python to significantly improve software
abstraction and portability while providing some basic features which could
prove useful when using Python, either stand-alone or via a DSL, on a
self-reconfigurable robot system. These features include transparent socket
communication, module identification, easy software transfer and reliable
module-to-module communication. The end result is a software platform for
modular robots that where appropriate builds on existing work in operating
systems, virtual machines, middleware and high-level languages.Comment: Presented at DSLRob 2011 (arXiv:1212.3308
Flexible Language Interoperability
Virtual machines raise the abstraction level of the execution environment at the cost of restricting the set of supported languages. Moreover, the ability of a language implementation to integrate with other languages hosted on the same virtual machine typically constrains the features of the language. In this paper, we present a highly flexible yet efficient approach to hosting multiple programming languages on an objectoriented virtual machine. Our approach is based on extending the interface of each class with language-specific wrapper methods, offering each language a tailored view of a given class. This approach can be deployed both on a statically typed virtual machine, such as the JVM, and on a dynamic virtual machine, such as a Smalltalk virtual machine. We have implemented our approach to language interoperability on top of a prototype virtual machine for embedded systems based on the Smalltalk object model, which provides interoperability for embedded versions of the Smalltalk, Java, and BETA programming languages
- …